/**
 * 获取Class对象
 *
 * 1   对象名.getClass()
 *     getClass()方法是定义在Object类中的方法。
 *     多用于对象的获取字节码的方式。
 *
 * 2   Class.forName("全类名")
 *     将字节码文件加载进内存，返回Class对象。
 *     多用于配置文件，将类名定义在配置文件中。
 *
 * 3   类名.class
 *     通过类名的属性class获取。
 *     多用于参数的传递。
 *
 *了解  基本数据类型.class
 *     基本类型的包装类，可以调用包装类的Type属性来获得该包装类的Class对象
 *     包装类型.TYPE
 */
public class ReflectCDemo {
    public static void main(String[] args) throws Exception {
        //方式一 对象名.getClass()
        Student stu = new Student();
        Class cls1 = stu.getClass();
        System.out.println(cls1.getName());
        //方式二  Class.forName("全类名")
        Class cls2 = Class.forName("Student");
        System.out.println(cls2.getName());
        //方式三  类名.class
        Class cls3 = Student.class;
        System.out.println(cls3.getName());

        System.out.println(cls1==cls2);
        System.out.println(cls1==cls3);

        Class<Character> char1 = char.class;
        Class<Boolean> bool = Boolean.TYPE;
        System.out.println(char1);
        System.out.println(bool);
    }
}
